Streaming is a technology enabling a client receiving multimedia content to play content upon receiving only a portion of the content before downloading the entire content from a media server. A media player installed in a client uses an address of the content, for example, a Universal Resource Locator (URL), to play the content in a server, and many media players use a Hypertext Transfer Protocol (HTTP) to obtain the content indicated by the URL. In other words, the media player of the client starts to receive a front portion of the content in the media server according to an HTTP request. The media player sets a decoder by analyzing header information included in the front portion of the content so as to prepare an environment for playing an image. Also, the decoder sets a capacity of a memory buffer so that the image is smoothly played according to a bit rate of the content. After the capacity of the buffer is set, Audio/Video (AN) data needs to be stored in a play order in the buffer, and at this time, index information (for example, MOOVatom) of the AN data is required. However, when multimedia content is not suitable for HTTP-based streaming, index information may exist in a location (for example, an end portion of content data) other than a header portion of the multimedia content. In this case, a decoder reads only a bitstream of index information stored in a certain location from a server by using a range option of HTTP. In other words, when content is not suitable for HTTP-based streaming, a media player may perform operations regarding a request to read header information, a request to read index information, and a request to sequentially store data in a buffer based on the index information. Such a plurality of requests may be generated simultaneously or one request may be generated after a session corresponding to another request is ended. When the plurality of requests are generated simultaneously, data is repeatedly received if several HTTP requests request a server for the same bitstream region, and thus network bandwidth resources are wasted, thereby increasing a time (e.g., an initial buffering time) taken to receive minimum data that is required for playing the content. Also, even when the one request is generated after a session corresponding to another request is ended, an initial buffering time is increased since disconnecting and connecting are repeatedly performed.
Generally, a media player includes a buffer for playing content, wherein data is accumulated in the buffer and the content is played when the data is accumulated to a predetermined threshold value or above. However, since most media players use a buffer having a very small limited memory compared to a size of media content, the buffer may be full upon receiving only some data of the media content, and the media players are unable to receive any more data or start to play the media content. The media players start to accumulate the data in the buffer after using the data stored in the buffer to some degree. When the memory of the buffer is small compared to the size of the media content, the data of the media content is received and stored in the buffer little by little through a network while playing the media content, and thus a network usage time of a client is increased, thereby increasing power consumption. Moreover, when data reception is temporally stopped, a Transmission Control Protocol (TCP) connection reduces a size of a congestion window, and thus even when the data reception is resumed, it takes time to recover the congestion window, thereby wasting network bandwidth resources.
Meanwhile, since most media players use an HTTP for streaming, these media players attempt to connect to a server by using a TCP socket. However, if the server does not support the TCP socket, it is difficult for the media players to stream content of the server. For example, when a server and a client are not connected to a same local network, the client should be aware of an Internet Protocol (IP) address and a port number connectable through a Network Address Translation (NAT) traversal. However, if there is a firewall, a connection is not successful even when the client is aware of the IP address and the port number, and a media player may use a User Datagram Protocol (UDP) socket or a logical socket connectable to a relay server using a public IP address. However, a media player that supports only HTTP streaming is unable to connect to such a server. Here, a function of supporting a new socket may be added to a media player, but it is practically difficult to modify all media players.
The above information is presented as background information only to assist with an understanding of the present disclosure. No determination has been made, and no assertion is made, as to whether any of the above might be applicable as prior art with regard to the present disclosure.